package kaiao.window;

/**
 * @author kai.ao
 * @since 2024/5/13
 */
public class 和为K的子数组 {

	public class Solution {
		public int subarraySum(int[] nums, int k) {

			// 计数最后返回值
			int count = 0;

			// 遍历数组
			for (int start = 0; start < nums.length; ++start) {

				// 设置计算和，每个循环都重新计算
				int sum = 0;

				for (int end = start; end >= 0; --end) {
					sum += nums[end];
					if (sum == k) {
						count++;
					}
				}
			}
			return count;
		}

		public int copy(int[] nums, int k) {

			// 计算最后的返回值
			int count = 0;

			// 遍历数组
			for (int start = 0; start < nums.length; ++start) {

				// 计算和
				int sum = 0;

				// 从start下一个开始增加
				for (int end = start; end < nums.length; ++end) {

					// sum相当于是窗口的滑动增加
					sum += nums[end];
					if (sum == k) {
						count++;
					}
				}
			}

			return count;
		}
	}
}
